package org.db.dao;

import java.util.SortedSet;
import java.util.TreeSet;

public class GleisDAO extends DAO{
	

	private int gleisID;
	private String bezeichnung;
	private double anfangsStation;
	private double abstandKmLinie;
	
	private SortedSet<KruemmungslinienDAO> kruemmungslinienElemente;
	private SortedSet<UeberhoehungslinienDAO> ueberhoehungslinienElemente;
	private SortedSet<HoehenlinienDAO> hoehenlinienElemente;
	
	public GleisDAO(int gleisID, String Bezeichnung, double anfangsStation, double abstandKmLinie) {
		this.setGleisID(gleisID);
		this.setBezeichnung(Bezeichnung);
		this.setAnfangsStation(anfangsStation);
		this.setAbstandKmLinie(abstandKmLinie);
		
		kruemmungslinienElemente = new TreeSet<KruemmungslinienDAO>();
		ueberhoehungslinienElemente = new TreeSet<UeberhoehungslinienDAO>();
		hoehenlinienElemente = new TreeSet<HoehenlinienDAO>();
	}
	
	public GleisDAO(int gleisID, String Bezeichnung, double anfangsStation, double abstandKmLinie,
			SortedSet<KruemmungslinienDAO> kruemmungslinienElemente, SortedSet<UeberhoehungslinienDAO> ueberhoehungslinienElemente,
			SortedSet<HoehenlinienDAO> hoehenlinienElemente) {
		this.setGleisID(gleisID);
		this.setBezeichnung(Bezeichnung);
		this.setAnfangsStation(anfangsStation);
		this.setAbstandKmLinie(abstandKmLinie);
		this.kruemmungslinienElemente = kruemmungslinienElemente;
		this.ueberhoehungslinienElemente = ueberhoehungslinienElemente;
		this.hoehenlinienElemente = hoehenlinienElemente;
		
	}

	public void setGleisID(int gleisID) {
		this.gleisID = gleisID;
	}

	public int getGleisID() {
		return gleisID;
	}

	public void setAnfangsStation(double anfangsStation) {
		this.anfangsStation = anfangsStation;
	}

	public double getAnfangsStation() {
		return anfangsStation;
	}

	public void setBezeichnung(String bezeichnung) {
		this.bezeichnung = bezeichnung;
	}

	public String getBezeichnung() {
		return bezeichnung;
	}
	
	@Override
	public String toString() {
		return bezeichnung;
	}

	public void setAbstandKmLinie(double abstandKmLinie) {
		this.abstandKmLinie = abstandKmLinie;
	}

	public double getAbstandKmLinie() {
		return abstandKmLinie;
	}
	
	public void addKruemmungslinienElement(KruemmungslinienDAO kruemmungslinienElement){
		kruemmungslinienElemente.add(kruemmungslinienElement);
	}
	
	public void addKruemmungslinienElemente(SortedSet<KruemmungslinienDAO> kruemmungslinienElemente){
		this.kruemmungslinienElemente.addAll(kruemmungslinienElemente);
	}
	
	public SortedSet<KruemmungslinienDAO> getKruemmungslinienElemente(){
		return kruemmungslinienElemente;
	}
	
	public void addHoehenlinienElement(HoehenlinienDAO hoehenlinienElement){
		hoehenlinienElemente.add(hoehenlinienElement);
	}
	
	public void addHoehenlinienElemente(SortedSet<HoehenlinienDAO> hoehenlinienElemente){
		this.hoehenlinienElemente.addAll(hoehenlinienElemente);
	}
	
	public SortedSet<HoehenlinienDAO> getHoehenlinienElemente(){
		return hoehenlinienElemente;
	}
	
	public void addUeberhoehungslinienElement(UeberhoehungslinienDAO ueberhoehungslinienElement){
		ueberhoehungslinienElemente.add(ueberhoehungslinienElement);
	}
	
	public void addUeberhoehungslinienElemente(SortedSet<UeberhoehungslinienDAO> ueberhoehungslinienElemente){
		this.ueberhoehungslinienElemente.addAll(ueberhoehungslinienElemente);
	}
	
	public SortedSet<UeberhoehungslinienDAO> getUeberhoehungslinienElemente(){
		return ueberhoehungslinienElemente;
	}
	
	
	
}
